package com.hdy.orderforthree.mvp;

import com.hdy.net.order.NetCallback;

public interface IFoodContract {
    interface Presenter {
        /**
         * 断开view，一般在onDestroy中调用
         */
        void detachView();
        /**
         * 是否与View建立连接
         * 每次调用业务请求的时候都要出先调用方法检查是否与View建立连接
         */
        boolean isViewAttached();

        /**
         * 处理菜品信息数据
         */
        void loadFoodData();
    }

    interface View<T> {
        /**
         * 显示正在加载进度框
         */
        void showLoading();
        /**
         * 隐藏正在加载进度框
         */
        void hideLoading();
        /**
         * 当数据请求成功后，调用此接口显示数据
         * @param obj 数据源
         */
        void showData(Object obj);
        /**
         * 当数据请求失败后，调用此接口提示
         * @param msg 失败原因
         */
        void showFailureMessage(String msg);
        /**
         * 当数据请求异常，调用此接口提示
         */
        void showErrorMessage();
    }

    interface Model {
        /**
         * 请求菜品信息数据
         * @param callback
         */
        void getFoodData(NetCallback callback);
    }
}
